It is desirable to provide users with motion which is synchronized with a movie or a video game for entertainment. Such motion enhances the user experience.
In order to maximize the perceived effect of motion, the motion data must be delivered to the motion platform in synchrony with the audio and/or video program also being delivered via the audio and video interfaces of the same computer platform. When the duration of the motion effect is long, the rate of delivery of the motion stream must be regulated or locked to precisely match the rate of delivery of the audio and/or video streams.
In addition, in some applications where motion may be synthesized in real-time (gaming applications for instance), it is desirable to minimize the latency of the delivery of motion data to the motion platform.
Prior computer peripherals designed for the delivery of motion by a computer platform or gaming console, relied on custom hardware and custom software elements (drivers and APIs). They were difficult to use by software developers (for instance game developers) because these developers had to be knowledgeable about these custom software elements and the underlying motion technology. These peripherals were difficult to port from one computer platform to another, because complex drivers and APIs had to be redesigned for each new computer platform. Software developers specialized in the development of such drivers and APIs also had to be knowledgeable about the complex hardware of the computer peripheral and the underlying motion technology.
In addition, prior motion interfaces did not address the problem of precise regulation of the rate of delivery of the motion stream in a way that is developer-friendly. On some platforms, rate regulation was difficult to reconcile with the need for low-latency.
A Universal Serial Bus (USB) is a serial bus standard for a computer to interface with various devices and computer peripheral. The USB provides a user-transparent interface for computer peripherals such as mouse devices, keyboards, digital cameras, printers, external storage, sound cards, etc. The USB Implementers Forum advantageously provides a specification for generic USB audio-class devices, such as a USB sound card, thereby encouraging the development of generic audio drivers on many computer platforms, to allow the control of USB sound devices from different manufacturers. There is currently no such USB specification for interfacing with a motion platform controller.
In addition, the USB Audio-Class specification properly and intrinsically addresses the problems of low playback latency and rate of delivery regulation in digital audio interfacing because these problems are germane to the field of computer audio. It results that solutions to these two problems are built-in in generic or custom audio drivers and APIs.